package src.Aula07.Ex01;

public class Alojamento  {
    private String codigo;
    private String nomeAl;
    private String local;
    private double preco;
    private boolean disponibilidade;
    private double avaliacao;


    public Alojamento(String codigo,String nomeAl,String local,double preco, boolean disponibilidade, double avaliacao){
        this.codigo=codigo;
        this.nomeAl=nomeAl;
        this.local=local;
        this.preco=preco;
        this.disponibilidade=disponibilidade;
        if (avaliacao < 1 || avaliacao > 5) {
            System.out.println("Avaliação inserida inválida, default(1)");
            this.avaliacao = 1.0;
        } else
            this.avaliacao = avaliacao;
    }

    //get
    public String getCodigo(){return codigo;}
    public String getNome(){return nomeAl;}
    public String getLocal(){return local;}
    public double getPreco(){return preco;}
    public boolean getDisponibilidade(){return disponibilidade;}
    public double getAvaliacao(){return avaliacao;}

    //set
    public void setCodigo(String novoCodigo){this.codigo= novoCodigo;}
    public void setNomeAl(String novoNomeAL){this.nomeAl= novoNomeAL;}
    public void setLocal(String novoLocal){this.local= novoLocal;}
    public void setPreco(double novoPreco){this.preco= novoPreco;}
    public void setDisponibilidade(Boolean novaDisponibilidaString){this.disponibilidade= novaDisponibilidaString;}
    public void setAvaliacao(double novaAvaliacao){this.avaliacao= novaAvaliacao;}

    //check-in
    public void checkIn(){
        this.disponibilidade=false;
    }

    //check-out
    public void checkOut(){
        this.disponibilidade=true;
    }

    //toString
    public String toString(){

        if (this.disponibilidade==true)
            return String.format("Alojamento %s, %s, em %s, tem o custo de %d€/noite, com avaliação de %d estrelas encontra-se neste momento disponível",codigo,nomeAl,local,preco,avaliacao);
        else
            return String.format("Alojamento %s, %s, em %s, tem o custo de %d€/noite, com avaliação de %d estrelas nào se encontra neste momento disponível",codigo,nomeAl,local,preco,avaliacao);
   
    }
}
